//-------------------------------------------------------------------
//	Copyright (c) 2010-2012 Zhirnov Andrey
//	This file is part of the "UXGEN" project.
//	See copyright notice in "Engine.h".
//-------------------------------------------------------------------

#ifndef _UX_RENDER_SYSTEM_H
#define _UX_RENDER_SYSTEM_H

#include "CRender.h"

namespace Engine
{
namespace CoreSystems
{

	//
	// Render
	//

	class _EXPORT_ CRenderSystem : public CEngBaseObject
	{
		friend class Engine::CoreSystems::CCore;
		friend class Engine::CoreSystems::CRender;

	protected:
		CTBOManager					_cTBOMan;
		CLDevice					_cDevice;
		CRenderProfiler				_cProfiler;
		//CRenderTechniqueManager		_cRTechMan;
		CRenderTargetManager		_cRTargetMan;
		GLObjectManager				_cObjMan;
		CUniformManager				_cUnMan;

	protected:
		CRenderSystem();
		~CRenderSystem();

		bool Init(const TEngInitParams &sInit);
		bool Init2();

		static void _s_InitRender(void *);

		// CEngBaseObject //
		virtual void Release();

	public:
	};

//-------------------------------------------------------------------

}	// CoreSystems
}	// Engine

#endif	// _UX_RENDER_SYSTEM_H